package com.itheima.demo; // package关键字：声明当前类所在的包，com.itheima.demo是包的完整路径，用于组织代码结构，避免类名冲突
// 智能控制系统类。 // 这是一个注释，说明这个类的作用是智能控制系统
public class SmartHomeControl { // public：访问修饰符；class：定义类的关键字；SmartHomeControl：类名
    // 多态。 // 注释说明这个方法演示了多态的概念
    public void control(JD jd) { // public：访问修饰符；void：返回值类型；control：方法名；(JD jd)：参数列表，JD类型的参数jd（体现多态，可以接受JD的任何子类对象）
        System.out.println(jd.getName() + "状态目前是：" + (jd.isStatus() ? "开着" : "关闭！")); // 输出设备名称和当前状态，使用条件运算符：如果status是true显示"开着"，否则显示"关闭！"
        System.out.println("开始您的操作。。。。。"); // 输出提示信息
        jd.press(); // 调用设备的press方法（体现多态，实际调用的是具体子类的press方法）
        System.out.println(jd.getName() + "状态已经是：" + (jd.isStatus() ? "开着" : "关闭！")); // 输出操作后的设备状态
    } // control方法结束标记

    public void printAllStatus(JD[] jds) { // public：访问修饰符；void：返回值类型；printAllStatus：方法名；(JD[] jds)：参数列表，JD类型的数组参数
        // 使用for循环，根据索引遍历每个设备。 // 注释说明循环的作用
        for (int i = 0; i < jds.length; i++) { // for循环：i从0开始，只要i小于数组长度就继续循环，每次循环i加1
            JD jd = jds[i]; // 从数组中获取当前索引位置的JD对象并赋值给变量jd
            System.out.println((i + 1) + "," + jd.getName() + "状态目前是：" + (jd.isStatus() ? "开着" : "关闭！")); // 输出序号、设备名称和状态
        } // for循环结束标记
    } // printAllStatus方法结束标记
} // SmartHomeControl类结束标记
